The Internet is a global network of computers that uses a common communication protocol, the Transfer Control Protocol/Internet Protocol (TCP/IP), to transmit data from one location to another. Many application specific tasks, such as E-mail transmission and file transfer, are not directly supported by TCP/IP. Instead, support for these services is implemented by application specific protocols that in turn rely on TCP/IP for basic data transport services. One problem that is relatively unknown to individuals that make use of the Internet is the ease by which information can be obtained during transmission by unauthorized eavesdroppers. For example, most E-mail transmissions over the Internet are sent in cleartext. Cleartext is unencrypted data that can be intercepted anywhere along the path between a sender and the recipient.
Accordingly, sensitive business or personal information should not be transmitted in cleartext over the Internet. To do so is to risk its publication. To avoid this risk, sensitive data is often sent by courier services or other means at great cost.
Encryption mechanisms can be used to ensure the integrity of information sent over the Internet. Two common encryption techniques, symmetric key encryption and public key encryption, are described below. In a symmetric key encryption, a unique key is identified and used by the sender to encrypt and by the receiver to decrypt a message. In public key encryption, separate keys are used to encrypt and to decrypt.
Both symmetric key and public key encryption require a key exchange. That is, where symmetric key encryption is used, the sender must provide the recipient with the key so that the recipient can decrypt an associated message. In public key encryption, the key exchange includes the publication of a recipient's public key that in turn is used by the sender to encrypt a message. A corresponding private key is used by the recipient to subsequently decrypt the encrypted message. Publication can be by posting the public key, for example, to a central site, or by providing the public key directly to the sender. In each of these scenarios, the recipient's computer must include a decryption engine (software) that uses an appropriate key to decrypt the message. Because there are a variety of encryption algorithms being used on the Internet, a recipient needs to have many different types of decryption engines installed to be able to receive secure messages universally. If the intended recipient does not have a particular decryption engine, the sender cannot utilize that particular encryption technique to send the secure message.
Often a sender will desire to send the same information, for example, over the Internet, to plural recipients who have different decryption engines installed. This adds an additional level of difficulty to the transmission process, because the sender must select the appropriate encryption engine for each recipient. For those recipients who do not have any decryption engine installed, the message simply cannot be sent securely.
With the promulgation of the Internet, a globally available decryption engine has been installed in almost all new personal computers in the form of a web browser that supports the secure socket layer (SSL) protocol. What is desirable is a system that allows the recipient to use this universally available decryption engine to receive secure messages from any sender regardless of what encryption engine the sender uses. In addition, the system should allow a sender to use one encryption engine to deliver the message to any recipient regardless of what decryption engine the recipient uses. In case the sender and the recipient have compatible encryption and decryption engines, the message may be sent directly. In case the sender's encryption engine and the recipient's decryption engine are not compatible, the system will translate the message format to ensure universal interoperability between encryption and decryption engines